magiclanternfandomcom-20200223-history
FAQ
What is it? Magic Lantern is an enhancement atop of Canon's firmware that makes your 5D Mark II into the 5D Mark Free. It adds new features like onscreen audio meters and zebra stripes, as well as disables the audio AGC. It is an open (GPL) framework for developing extensions to the official software, tailored for film making needs. ; Where do I get it? : It's not really ready for general distribution, but the sources are available under the GPL for other developers. You can download pre-built firmware images for the 1.1.0 firmware, but they are not fully functional yet. ; What can I do to help? : If you're a programmer skilled in ARM assembly, embedded systems, GUI programming and don't mind risking your expensive camera, send me a message. ; Can I donate / pay for it? : You can donate via PayPal. I'm also looking for used film making equipment (steadicams, rails systems and lenses), so if you have any older ones that are no longer being used please let me know. Or you can make a donation to the EFF for me. For more info, see the full FAQ ; How is it installed? : As shown in the video, a file named 'magiclantern.fir' is copied to the CF card and "Update firmware" is selected from the menu. The running firmware shuts down, loads the file into RAM and starts it running. Rather than reflashing the ROMs, this new program starts the DryOS boot process to install itself. ; Does it modify the camera? : Nothing is written into the ROMs. When the camera reboots, the RAM image is flushed and the bootloader FROMUTIL at 0xFFFF0000 starts the pristine copy in ROM at 0xff810000. After any reboot (or even powersave), you must select the "Update firmware" menu item. Eventually we want to be able to boot directly from the AUTOBOOT.BIN file on the CF card. ; Is it dangerous? : I haven't bricked my camera yet, but that is no guarantee. It doesn't write to the ROMs at all, so it should be fairly safe, but anytime software is interacting with hardware there is possibility of significant damage. The FROMUTILITY appears to have a way to reflash even a bricked camera, but I don't know how to access the console. ; How will it interact with the upgrade from Canon? : The current code is very tightly integrated with the 1.0.7 firmware image; it modifies specific instructions at hard-coded addresses and uses function addresses that will change in a new firmware. Once the new Canon firmware is widely available, Magic Lantern will be updated to support it as well as the 1.0.7 firmware. : Despite this tight integration, the 5D Mark Free software does not contain any Canon code. What feature do you want next? Desired features Headphone monitoring Button remapping Audio EQ parameters Audio gain setting Crop mode Scripting False color ; When will {manual control,24p,etc} be available? : Canon has announced their own firmware upgrade available 2 June that will include manual exposure control. We'll have to see what other features they fix in this upgrade. : It is hard to predict how much effort will be required to implement new features. Disabling existing features is fairly easy, which is why AGC support was the first target. Disabling auto-exposure should be easy as well, but an accurate estimate is difficult to give since I'm only working on this in my spare time. : For these reasons it is hard to say if all of the terms of http://canonhack.com/ will be met. Perhaps, although changing the frame rate to 24p and PAL are the one that has the most unknowns. ; Does it work with chdk? : I've used some of the CHDK tools to learn about Canon firmware files, but this is all new code. They have done an amazing job of supporting hundreds of different camera models across multiple architectures and operating systems. At some point in the future chdk might be ported to the 5D Mark 2, but this project is much more focused on just the 5D Mark II and the needs of film makers. ; Why the name change? : Originally the project was called just "5D Mark Free", but out of an abundance of caution it seemed best to avoid Canon's trademarks. ; What is it written in? Can I get the source? : The firmware hack is in C, with some inline assembly for boot strapping. The firmware build tools are in Perl and use Makefiles for dependency tracking. You need an arm-linux-elf build of gcc and binutils. Most of the code analysis has been done with objdump, strings and the IDA demo. :No tech support will be provided. If it breaks you get to keep both pieces. :If you know what all of these terms mean and aren't scared of the possibility of breaking your camera, you can download the Magic Lantern firmware source code. ; How do I get a ROM0.bin firmware image? : I've written a modified version of the 1.0.7 firmware image that uses the embedded DryOS to dump out the firmware. Since it is a derived work of Canon's firmware, I am not comfortable distributing it. There is no reason that this could not be added to the new 5d2-ml.fir file once we have custom menus, which should avoid any IP issues. :We do not distribute ROM images, nor IDAPro .idb files, since they are verbatim copies of Canon's copyrighted code. You can generate the ROM images from your own camera and use the .map file to apply our names to the file inside of IDA. ; What are all of the 0xff81beef things and funny names like EP_SetManualMovieMode()? : These are the addresses in the official ROM firmware for different functions and names that we have given to functions. If you load the ROM0.bin image into IDA or use objdump you can trace through the instructions to determine how the software works. If you are just using the camera, they don't need to mean anything to you, but they give other developers a place to look in the firmware image. : The function names are unlikely to be the same as the ones in Canon's source code, which we have never seen. We name functions based on what they seem to do, or debugging / diagnostic strings embedded in the function. It isn't perfect, but it is sufficient to locate the important things for task creation, file I/O and GUI operation. ; What are the next steps? : See Todo list for more details: ; Is it legal? : This is a "clean room" / "black box" reverse engineering effort and as such should be ok. Frequently asked questions about reverse engineering addresses the legality question; producing an interoperable product is one of the explicit allowances enshrined in law. ; Will it work on a 50D, GH1, etc? : It is likely that the 50D is close enough to the 5D Mark 2 that the same techniques can be applied to building similar firmware. The CHDK project succcessfully supports many different cameras running different operating systems, but finding the necessary kernel entry points is a very time consuming process. Once the 5D Mark Free software is publicly available, some one with the inclination to port it to the 50D can do so. The 40D is similar in hardware, but runs vxWorks and would be lots of effort to support The GH1 is a completely different bit of hardware and would require an entire from-scratch reverse engineering effort. Until Panasonic releases a firmware update it is unlikely that any such efforts can be begun. ; What about feature X? : See New feature requests for details.